package com.luoran.bartalks.service;

import java.util.List;

import com.luoran.bartalks.entity.biz.BtContainer;
import com.luoran.bartalks.entity.biz.BtMateriel;
import com.luoran.bartalks.entity.biz.BtPlanBiz;
import com.luoran.bartalks.entity.biz.BtPlanDetails;
import com.luoran.bartalks.entity.biz.BtPlanEntry;
import com.luoran.bartalks.entity.biz.BtPlanTemplate;
import com.luoran.bartalks.entity.biz.BtProject;
import com.luoran.bartalks.entity.biz.BtProjectMember;

public interface IBtProjectReportService {

	/**
	 * 根据公司ID分页获取项目信息
	 * 
	 * @param CompanyId,status
	 * @return
	 */
	List<BtProject> queryProjectByCompanyIdofReport(String companyId, int startRow);

	/**
	 * 根据项目ID获取项目成员信息
	 * 
	 * @param projectId
	 * @return
	 */
	List<BtProjectMember> getProjectMemberByProjectIdAndMembertype(String projectId, int membertype);

	/**
	 * 根据项目ID获取计划信息
	 * 
	 * @param projectId
	 * @return
	 */
	List<BtPlanDetails> queryPlanByProjectIdOfReport(String projectId, int startRow);

	/**
	 * 根据计划ID获取计划信息
	 * 
	 * @param projectId
	 * @return
	 */
	BtPlanDetails getPlanInfoByIdOfReport(String planId);

	/**
	 * 根据计划ID获取计划信息
	 * 
	 * @param projectId
	 * @return
	 */
	BtPlanTemplate getTemplateNameById(String id);

	/**
	 * 根据项目ID计划ID途经点ID查看是否有记录
	 * 
	 * @param
	 * @return
	 */
	List<BtPlanBiz> findArrive(String projectId, String planId, String planPositionId);

	/**
	 * 根据容器ID查询容器类型
	 * 
	 * @param
	 * @return
	 */
	BtContainer findContainerTypeById(String containerId);

	/**
	 * 根据计划id查询途经点顺序用于报表展示
	 * 
	 * @param planId
	 * @return
	 */
	List<BtPlanEntry> getPlanEntryByPlanIdOfReport(String planId);

	/**
	 * 根据计划途经点id查询物料用于工作台展示
	 * 
	 * @param planEntryId
	 * @return
	 */
	List<BtMateriel> getMaterielByPlanEntryIdOfReport(String planEntryId, int startRow, String type);

	/**
	 * 根据计划id查询异常信息
	 * 
	 * @param planId
	 * @return
	 */
	List<BtPlanEntry> getPlanEntryException(String planId);

	/**
	 * 根据id查询计划途经点信息
	 * 
	 * @param Id
	 * @return
	 */
	BtPlanEntry getPlanEntryById(String Id);

	/**
	 * 根据planid.sign获取PlanEntry
	 * 
	 * @param planId,companyId,sign
	 * @return
	 */
	BtPlanEntry getPlanEntryByPlanIdAndSign(String planId, String companyId, int sign);
}
